home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-05-05 | 54.2 KB | 1,699 lines |
- Newsgroups: comp.sources.misc
- subject: v12i029: Mail User's Shell, Part01/19
- from: argv@Eng.Sun.COM (Dan Heller)
- Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 12, Issue 29
- Submitted-by: argv@Eng.Sun.COM (Dan Heller)
- Archive-name: mush/part01
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # If this archive is complete, you will see the following message at the end:
- # "End of archive 1 (of 19)."
- # Contents: mush mush/mush.1.c mush/strings.h
- # Wrapped by argv@turnpike on Wed May 2 13:59:17 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test ! -d 'mush' ; then
- echo shar: Creating directory \"'mush'\"
- mkdir 'mush'
- fi
- if test -f 'mush/mush.1.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mush/mush.1.c'\"
- else
- echo shar: Extracting \"'mush/mush.1.c'\" \(50362 characters\)
- sed "s/^X//" >'mush/mush.1.c' <<'END_OF_FILE'
- XIf the mailbox were already sorted by author,
- X.sp
- X.ti +2
- Xpick \-f argv@zipcode.com | sort \-s
- X.sp
- Xwould find all messages from the user \*Qargv@zipcode.com\*U
- Xand sort them by subject.
- XYou may specify the exact message list by specifying
- Xthat message list on the command line and using a pipe:
- X.sp
- X.ti +2
- X10\-. | sort d
- X.sp
- XThis command means to sort the messages from 10 to the current message
- Xaccording to the date.
- X.sp
- XTo specify subsorting from with the curses interface, the temporary
- Xcurses escape key must be used (the colon `:') and the command issued
- Xat the `:' prompt (as if giving an \*Qex\*U command to \*Qvi\*U).
- XWhen the command is finished, the \*Q...continue...\*U prompt is given and
- Xthe user may continue or return to the top level of the curses mode.
- X.sp
- XIn the tool mode, subsorting can be specified only by typing message numbers
- Xin the \*QRange:\*U item at the top of the main frame, before selecting the
- X\*QSort\*U item.
- XThe sort range must consist of consecutive messages.
- XReversed sorting is not currently available in tool mode.
- X.sp
- XIf the variable
- X.I sort
- Xis set, messages are sorted each time the user's system mailbox is
- Xread as the current folder.
- XThe
- X.I sort
- Xvariable can be set either to nothing or to legal "sort" arguments.
- X.sp
- X\fINote\fR: For compatibility with older versions, sort options are
- Xrecognized even if they are not preceded by a `\-'.
- XAlso, if a `\-' is given by itself (separated by spaces from any following
- Xarguments) it is interpreted as \-r.
- X.TP
- X.B stop
- XFor systems with job control, stop will cause
- X.I Mush
- Xto send a SIGTSTP to itself.
- XThe command was introduced to facilitate
- Xthe stop-job action from a complex command line alias rather than the user
- Xhaving to type his stop character explicitly.
- X.TP
- X.B top
- XTakes a message list and prints the top few lines of each.
- XThe number of lines printed is controlled by the variable
- X.B toplines
- Xand defaults to the size of the value of the variable
- X.B crt.
- XThis command is ignored in the tool mode.
- X.TP
- X.BR undigest " [-m] [-p pattern] [msg-list] [filename]"
- XA \*Qdigest\*U is a mail message which is a collection of other mail messages
- Xmailed to a \*Qmoderator\*U by other users. The moderator compiles all the
- Xmessages into a folder and sends the result to all the subscribers of the
- Xmailing list. The
- X.B undigest
- Xcommand disassembles the entries into the set of messages which comprises
- Xthe digest.
- X.sp
- XThe -m option will merge these messages into the current folder. Otherwise,
- Xif a filename is specified, a new folder is created and the user can change
- Xfolders to read the messages separately.
- X.sp
- XThe -p option specifies an alternate pattern to be used as the digest
- Xarticle separator.
- XThis pattern must match literally at the beginning of the line.
- XThe default pattern is \*Q\-\|\-\|\-\|\-\|\-\|\-\|\-\|\-\*U (eight hyphens).
- XThis is the defacto USENET standard digest article separator and should
- Xwork for most digests, but some use another separator.
- XThe -p option is also useful for \*Qbursting\*U forwarded messages out
- Xof a wrapper message; for example:
- X.sp
- X.ti +4
- Xundigest -m -p "--- Forward"
- X.sp
- Xwill burst out messages forwarded by another user of
- X.I Mush
- Xand merge them into the current folder.
- X.sp
- XIf a message list is specified, each digest in the list is disassembled to
- Xthe same filename (if given).
- XIf no filename is given and the user did not request
- Xa merge, then a temporary file is made.
- X.TP
- X.BR update " [-r]"
- XUpdates your current folder, writing back changes just as if you
- X.BR quit.
- XHeaders are not listed when the folder is read back in.
- XThe \-r option puts the folder into read-only mode
- X.I after
- Xupdating it.
- X.sp
- XSee the
- X.BR folder
- Xcommand for complete information.
- X.sp
- X.SH VARIABLES
- XShell variables are controlled via the
- X.B set
- Xand
- X.B unset
- Xcommands.
- XOptions may be either boolean, in which case it is only
- Xsignificant to see whether or not they are set;
- Xstring, in which case the actual value is of interest;
- Xnumerical, in which case the numerical value is important;
- Xor multivalued, in which case they may be set to a list of values.
- XSome variables may have attributes
- Xof boolean and string or multivalued at the same time.
- X.PP
- XIf you or the program references a variable that is not explicitly set,
- Xthen the environment variables are checked and that data is returned.
- X.PP
- XVariable values can be modified by one of four variable modifiers, or by a
- Xnumeric string.
- XThe modifiers `:h', `:t', `:l' and `:u' may be applied to the variable names.
- XThe current implementation allows only one `:' modifier on each `$' expansion.
- X.TP
- X:t
- XThe variable is treated as a file path name, and the name of the file
- X(the \*Qtail\*U of the path) is substituted for the variable.
- XThat is, everything to the right of the last `/'
- Xis returned.
- X.TP
- X:h
- XThe variable is treated as a path name, and the \*Qhead\*U of the pathname
- Xis substituted for the variable.
- XThat is, everything up to, but not including, the last `/' is returned.
- X.TP
- X:l
- XAll alphabetic characters in the variable's value are converted to lower case.
- X.TP
- X:u
- XAll alphabetic characters in the variable's value are converted to upper case.
- X.TP
- X.RI : number
- XThe value of the variable is converted to a list of space-separated words,
- Xwhich are numbered from one (1), and the word described by
- X.I number
- Xis selected and returned.
- XIt is not an error for
- X.I number
- Xto be greater than the actual number of words; an empty string is returned
- Xin this case.
- X.PP
- XFollowing is a list of all variables with predefined meanings.
- X.TP
- X.B alwaysignore
- X(Boolean/Multivalued)
- XIf set with no value, the mail headers set by the
- X.B ignore
- Xcommand are always ignored.
- XNormally, ignored headers are not ignored when sending messages to
- Xthe printer, when interpolating messages into letters with ~f or ~I,
- Xwhen the `P' or `T' command is given (see the \fBprint\f command),
- Xor with the \-I flag to the
- X.B mail
- Xor
- X.B reply
- Xcommands.
- XSetting
- X.B alwaysignore
- Xwill ignore those headers even in the situations mentioned here.
- XNo headers can be ignored during updates and when using the
- X.B save
- Xcommand since the user may ignore headers that are required by
- X.I Mush
- Xor any other mail system to read those folders.
- X.sp
- XThis variable can also be set to a list of words
- Xseparated by commas or spaces.
- XCurrently recognized words, and their meanings, are:
- X.nf
- X.ta 1.5i
- X.in +4
- X.\" \& escapes are to make obvious the tab after each word
- Xforward\& Ignore headers when forwarding messages (~f).
- Xinclude\& Ignore headers when including messages (~I).
- Xpipe\&\& The \fBpipe\fR command ignores headers.
- Xprinter\& The \fBlpr\fR command ignores headers.
- X.in -4
- X.fi
- X.sp
- XAlso see the
- X.B ignore
- Xcommand and the
- X.B show_hdrs
- Xvariable for more information.
- X.TP
- X.B ask
- X(Boolean)
- XIf set, you will be prompted for a subject header for outgoing mail.
- XUse the tilde escape \*Q~s\*U to set the header once in the message
- Xor specify the \-s option on the
- X.B mail
- Xcommand line at the
- X.I Mush
- Xprompt.
- X.TP
- X.B askcc
- X(Boolean)
- XIf set, you will be prompted for a Cc (carbon copy) list when you are
- Xfinished editing a letter to be sent.
- XIf the variable
- X.B edit_hdrs
- Xis set, prompting will not occur, but a Cc: line will be added to the
- Xedit file.
- XThis also applies to the tool mode.
- X.TP
- X.B autodelete
- X(Boolean)
- XWhen exiting mail, all messages that have been read
- X.I "regardless of whether they have been marked for deletion"
- Xare removed.
- XOnly messages that haven't been read or that have been marked as
- X.B preserved
- Xare not removed.
- X.TP
- X.B autoedit
- X(Boolean)
- XIf set, you are automatically put into your editor whenever you
- Xsend or reply to mail.
- X.TP
- X.B autoinclude
- X(Boolean)
- XWhen replying to any mail, a copy of the message being replied to
- Xis automatically inserted into your message body indented by
- Xthe string described by the variable
- X.BR indent_str .
- X.TP
- X.B autoprint
- X(Boolean)
- XAfter you delete a message, the next message is printed automatically.
- X.TP
- X.B auto_route
- X(Boolean/String)
- XIf set boolean (not to a string), all the recipients in a message that
- Xis being replied to (via \fBreplyall\fR), will be routed through the path
- Xback to the original author.
- X.sp
- XFor example, if the original sender of a message came from the remote host
- X.B c3p0
- Xand the list of recipients looked like
- X.sp
- X.nf
- X.in +2
- XFrom: c3p0!user1
- XTo: yourhost!you
- XCc: r2d2!user2, r2d2!user3
- X.in -2
- X.fi
- X.sp
- Xthen clearly, \*Quser1\*U on the machine c3p0 can talk to your machine
- Xand the machine named r2d2.
- XHowever, you would not be able to respond to those users if your machine
- Xdid not exchange UUCP mail with the host r2d2.
- X.sp
- X.I Mush
- Xwill attempt to solve this problem by reconstructing the addresses
- Xfor \*Quser2\*U and \*Quser3\*U according to the address of the original
- Xsender, \*Qc3p0\*U.
- XThe new addresses for \*Quser2\*U and \*Quser3\*U should therefore become
- X.sp
- X.ti +2
- Xc3p0!r2d2!user2, c3p0!r2d2!user3.
- X.sp
- XIf your machine not only talks to c3p0,
- Xbut talks to r2d2 as well, it becomes unnecessary to route the mail
- Xthrough both c3p0 and r2d2.
- XSo, the variable
- X.B known_hosts
- Xmay be set to a list of hosts which you know your machine to have
- XUUCP mail connections with.
- XThis list is checked when constructing mail addresses for replies only and
- Xthe shortest path is made by removing from the UUCP path those hosts
- Xthat do not need to be called or are redundant.
- XSee the entry for
- X.B known_hosts
- Xfor more information.
- X.sp
- XIf
- X.B auto_route
- Xis set to a specific \fBpathname\fR (host names separated by !'s),
- Xall addresses in the reply will have this route prepended to their addresses.
- XThis ignores the original path of the author. This is quite useful for
- Xhosts which talk uucp to a node which is connected to the internet or uunet
- Xsince both of those machines tend to be one-hop away from all other hosts
- X(or reroute accordingly). For example, if a message was addressed like so:
- X.sp
- X.in +2
- X.nf
- XTo: root@ucbvax.berkeley.edu, argv@zipcode.uucp
- XCc: ucbcad!foo!bar
- X.sp
- X.fi
- X.in -2
- XIf auto_route were set to "ucbcad", then replies to this address would be
- Xdirected addressed like so:
- X.sp
- X.in +2
- X.nf
- XTo: ucbcad!ucbvax.berkeley.edu!root, ucbcad!zipcode.uucp!argv
- XCc: ucbcad!foo!bar
- X.sp
- X.fi
- X.in -2
- X.sp
- XThis assumes that the host in question talks uucp with ucbcad. This example
- Xdemonstrates several things. First, notice that all addresses are converted
- Xto uucp-style format. Whenever routing is changed, the format is converted
- Xlike this. Secondly, note that the Cc: line did not change. This is because
- Xall redundant hostnames from UUCP pathnames are removed
- Xto avoid unnecessary UUCP connections and speed up mail delivery.
- X.sp
- XAnother example of how auto_route truncates UUCP paths:
- X.sp
- X.ti +2
- Xpixar!island!sun!island!argv
- X.sp
- XHere, mail was probably originally sent to users at pixar and sun from
- Xsomewhere undetermined now.
- XSince sun and pixar do not talk to each other, the users on those machines may
- Xhave responded to mail creating the type of addresses stated above.
- XHere, it can be seen that we can reduce the path to the host
- X.IR island :
- X.sp
- X.ti +2
- Xpixar!island!argv
- X.sp
- XSee the MAIL ADDRESSES section for more detailed information
- Xabout legal mail addresses.
- X.sp
- XNote that the -r flag to \fBreply\fR and \fRreplyall\fR overrides the
- Xvalue of \fBauto_route\fR.
- X.TP
- X.B autosign
- X(Boolean/string)
- XAppend a signature to outgoing mail.
- XIf this variable is set, but not to a string (e.g., boolean-true)
- Xthen the file ~/.signature is used.
- X.sp
- XOtherwise, the variable is interpreted in one of four ways.
- XBy default, the string is interpreted as a pathname relative to the
- X.I current
- Xdirectory.
- XFor this reason, it is advisable to use full pathnames here.
- XAs usual, the special characters `~' and `+' are expanded.
- XIf a file is found, it is opened and its contents are read into the
- Xmessage buffer.
- X.sp
- XIf the variable is set to a string that begins with `$', then that string
- Xis interpreted as a user-definable variable and is expanded and appended
- Xto the letter.
- X.sp
- XIf the variable is set to a string that begins with a backslash (\\)
- Xthen the string itself (minus the `\\' character) is used; no expansion
- Xis done and no files are read.
- X.sp
- XFinally, if the variable is set to a string that begins with a vertical
- Xbar (or \*Qpipe\*U) character (|), the rest of the string is interpreted
- Xas a command whose output will be used as the signature.
- XThe special characters `~' and `+' are NOT expanded in the command name,
- Xbut the command is run via /bin/sh so $PATH will be searched and redirection
- Xcan be specified.
- XThe list of addresses to which the letter will be sent is passed to
- Xthe command as its arguments, in the same form that they will be passed
- Xto the Mail Transport Agent (MTA).
- XDepending on your MTA, each address may be followed by a comma.
- X.sp
- XIn the latter three cases, it is advisable to set the variable using single
- Xquotes to protect the `$', `\\' and `|' characters from being interpreted.
- XExamples:
- X.sp
- X.nf
- X.ti +2
- Xset autosign = '$foo'
- X.ti +2
- Xset autosign = '\\ Dan Heller zipcode!argv@ucbcad.berkeley.edu'
- X.\" Need a pipe example?
- X.fi
- X.sp
- X.BR Warning :
- Xif redirection from the calling shell is used,
- Xno signature or fortune will be added to outgoing mail.
- XFor example,
- X.sp
- X.ti +2
- X% mush \-s report manager < report_file
- X.sp
- XIn this command, mail is being sent to the user \*Qmanager\*U and the
- Xsubject is set to \*Qreport\*U and the file \*Qreport_file\*U is being
- Xredirected as input.
- XIn this case, there will be \fIno\fR signature appended.
- X.sp
- X.IR Note :
- XThe `|' syntax for calling a program to sign the letter is a little
- Xcounterintuitive and may change in future releases.
- X.TP
- X.B autosign2
- X(String)
- XThis alternate signature is available for special cases where the default
- Xsignature is not desired or if no signature is desired for special addresses
- Xor if only special addresses require a signature.
- XThe format for this variable is:
- X.sp
- X.ti +2
- Xautosign2 = \*Qaddress1, address2, ... : <signature>\*U
- X.sp
- XEach address can be one of these types:
- X.RS
- X.TP
- X1) address
- XLegal mailing addresses that do not contain comment
- Xfields (see the sections MAIL ADDRESSES for more information on legitimate
- Xmail addresses) will match literally.
- X.TP
- X2) *username
- XIf the username is present on the recipient list, regardless of what
- Xremote site the user may reside on (including locally), the pattern matches.
- X.TP
- X3) !hostname !host1!host2...
- XAny user who appears as a recipient will match the pattern provided he
- Xresides on the specified hostname.
- XIf a path of hosts is specified, then the user must reside on the last
- Xhost of the specified path.
- X.\" Nroff note: there is a problem with the @sub.domain line. Why?
- X.\" The .br is intended to deal with this.
- X.TP
- X4) @sub.domain
- X.br
- XThe user must reside on any host within the domain specified.
- XNeither the user or the hostname needs to match; only the domain name must
- Xbe required to match.
- X.RE
- X.\" Nroff note: RE takes us all the way out of TP, so step back in again.
- X.RS
- X.sp
- XExample:
- X.sp
- X.nf
- X.ti +2
- Xset autosign2 = \*Q!zipcode @sun.com @mit.edu *schaefer root: \--dan\*U
- X.fi
- X.sp
- XThis means that any mail sent to 1) anyone at zipcode, 2) anyone within
- Xthe sun domain, 3) anyone within the mit domain, 4) Bart Schaefer
- X(at any host anywhere -- even locally),
- Xand 4) root on the local machine only (or, root@local-machine-name)
- Xwill be signed with the \*Qalternate\*U signature.
- XIf any address on the
- Xrecipient list fails to satisfy these four matches, the mail will be
- Xsigned by my regular signature.
- X.sp
- XOne can have a local signature and a remote signature by specifying
- Xthe autosign2 to include the hostname of the home machine the user
- Xis logged into. Note the \*Qzipcode\*U example above.
- X.sp
- XThe list of recipients, after alias expansion and comment removal, is
- Xthen scanned and the following patterns are matched against those addresses
- Xspecified in the autosign2 or fortunates variable according to these rules.
- X.sp
- XThe signature description is the same as described by
- X.B autosign
- Xvariable. The colon (:) separates the list of addresses from the signature
- Xdescription. If there is no colon or the address list is missing, the
- Xentire string is considered the signature (except for the colon).
- X.sp
- XIf
- X.B autosign
- Xis not set, then autosign2 will ONLY work if the tilde command \*Q~S\*U
- Xis specified. In this way, a user may never have autosign set and just
- Xset autosign2 to be some signature value. The user may then issue the
- Xtilde command to automatically sign the letter.
- XIf a list of addresses is given (terminated by a colon), then all
- Xrecipients of the message must be in the list of addresses in autosign2;
- Xotherwise, the signature in \fBautosign\fR (if set) is used instead.
- XA null signature in autosign2 will not sign the letter.
- X.sp
- XExample:
- X.sp
- X.nf
- X.ti +2
- Xset autosign2 = "fred, barney, wilma, betty: ~/flintstone.sig"
- X.fi
- X.sp
- XIf a message is sent to:
- X.sp
- X.ti +2
- XTo: fred, wilma
- X.sp
- XThen the file ~/flintstone.sig will be used.
- XHowever, if the address were:
- X.sp
- X.ti +2
- XTo: barney, betty, bambam
- X.sp
- XThen autosign2 will not be used because bambam is not in the list.
- X.sp
- XNote that mail sent via redirection from the calling shell will not
- Xsign letters or append fortunes.
- X.RE
- X.TP
- X.B cdpath
- X(String)
- XSet to a string of pathnames separated by spaces to use when searching
- Xfor a directory when the
- X.B cd
- Xcommand is issued.
- XIf this variable is used, it is recommended that the path `.' be included.
- XNote that this differs from the
- X.IR csh ,
- Xwhich does not require that `.' be present.
- X.TP
- X.B cmd_help
- X(String)
- XThis variable gives the path name of the general help file, which is read
- Xby the
- X.B help
- Xcommand.
- XThis variable is normally reset only in the system initialization files,
- Xwhen the default location of the help file has changed.
- X.TP
- X.B complete
- X(String)
- XSetting this variable enables word completion.
- XThe first character of the value of
- X.B complete
- Xis used as the
- X.IR "completion character" ;
- Xif
- X.B complete
- Xis set, but not to a value, the escape character is used as the default.
- XWhen the completion character is typed at the end of a word prefix,
- X.I Mush
- Xwill interactively complete that word.
- XIf the prefix is not unique, the word will be completed as far as possible
- Xand a bell will sound (see, however, the variable
- X.BR quiet ).
- XIf the word contains filename metacharacters,
- X.IR "all possible matches will be completed" .
- XIf the list overflows the command line buffer, it will be truncated, so
- Xthis feature should be used with care.
- XMetacharacters recognized are the same as in
- X.IR csh .
- X.sp
- XThe second character of the value of
- X.B complete
- Xis used as the completion listing character.
- XWhen this character is typed, the possible completions will be printed, and
- X.I Mush
- Xwill prompt again with the original prefix.
- XIf
- X.B complete
- Xis set to only a single character, completion listing is disabled;
- Xif it is set with no value, control-D (^D) is used as the default
- Xlisting character.
- X.sp
- XSee the description of the variable
- X.B fignore
- Xfor ways to exclude filenames from completions.
- X.sp
- XWord completion is currently supported only for file names.
- XCommand name and alias completion may be added in a future version.
- XCompletion is not possible if the \-e (\-echo) flag was given, and
- Xis currently not available in tool mode.
- X.TP
- X.B crt
- X(Numeric)
- XSet to a value that describes the number of lines a message
- Xmust have before invoking the
- X.B pager
- Xto view a message.
- X.TP
- X.B crt_win
- X(Numeric)
- XSet to the height (in lines) of the message display window in tool mode.
- X.TP
- X.B curses_help
- X(String)
- XThis variable may be set to a space-separated list of curses mode command
- Xnames (see the CURSES section for the possible choices).
- XIf set but without a value, a default list established by your
- X.I Mush
- Xmaintainer is used.
- XWhen it is set, a display of the current bindings for the listed commands
- Xwill appear at the bottom of the screen in curses mode.
- XThis help display will normally shorten the display of headers, but the
- Xthe user may explicitly scroll over the help display if he wishes to see
- Xmore headers.
- X.TP
- X.B cwd
- X(String)
- XThe
- X.B "current working directory"
- Xstring is automatically set upon startup of
- X.I Mush
- Xand is reset each time the commands
- X.B cd
- Xand
- X.B pwd
- Xare called.
- XIt may be changed or referenced like any other shell variable.
- X.TP
- X.B date_received
- X(Boolean)
- XWhen message headers are printed, the date is normally shown is
- Xthe time and date the sender sent the message. If this variable
- Xis set, then the date displayed is the date received.
- X.sp
- XWhen sorting messages by date, this variable is queried to determine
- Xwhether the messages should be sorted by date sent or date received.
- X.sp
- X\fBWarning:\fR For mailers that store messages \fIwithout\fR a line
- Xthat starts with \*QFrom \*U, this option does nothing.
- X.TP
- X.B dead
- X(String)
- XFile to use instead of dead.letter when interrupted mail is saved.
- XMay be set to a \fIunix\fR command by prefixing the value with `|'.
- XFor more information, see the variable
- X.B nosave.
- X.TP
- X.B domain_route
- X(Boolean/String)
- XIn combination with
- X.BR auto_route ,
- Xthis variable specifies that addresses containing a fully-qualified domain
- Xshould be short-circuited to mail directly to the rightmost fully-qualified
- Xdomain.
- XIf set boolean (not to a string), only short-circuiting is done.
- XIf set to a string, the address is rewritten to UUCP form and the value
- Xof the variable is prepended.
- XDomain short-circuiting applies \fIonly\fR to addresses containing a
- Xfully-qualified domain, but short-circuits in spite of any path specified
- Xwith the \-r flag of
- X.B reply
- Xor through the string value of
- X.B auto_route
- X(thus possibly omitting the auto_route or \-r paths altogether).
- XSee
- X.B auto_route
- Xfor more information.
- X.TP
- X.B dot
- X(Boolean)
- XCauses
- X.I Mush
- Xto accept a `.' on a line by itself,
- Xin addition to `^D', to terminate messages.
- X.TP
- X.B editor
- X(String)
- XSpecifies the editor to use when the \*Q~e\*U escape or the
- X.B edit
- Xcommand is used.
- XDefault is the value of the environment string EDITOR or the variable
- X.BR visual .
- X.TP
- X.B edit_hdrs
- X(Boolean)
- XWhen in letter-composition mode (via \fBmail\fR or \fBreply\fR, etc),
- Xthe headers of the outgoing message are stored in the same buffer as
- Xthe text of the letter.
- XSo, if the editor is called to edit the message
- Xbuffer, the headers of the message can be edited as well.
- XHowever, there are some restrictions.
- X.sp
- XThere must be a To: header.
- XWithout this,
- X.I Mush
- Xwill not deliver the letter.
- XInstead, the editor must be reentered and a To: header with
- Xa valid recipient must be inserted.
- XA valid Cc: header does not remove this restriction.
- XYou may have as many To: and Cc: headers as you like.
- X.sp
- XThe From: header normally should not be changed.
- XIf you change this header to an address that
- X.I Mush
- Xis unable to identify as
- Xauthentic, the original From: header will silently be put back.
- X.sp
- XThe Date: header will always be replaced by one with a more accurate
- Xtime and date stamp.
- XTherefore, changing or removing this header has no effect.
- X.sp
- XYou cannot add a Status: header, and blank headers are dropped.
- XFor example, if an empty Cc: header exists, the header will
- Xnot show up in the outgoing message.
- XTherefore, leaving empty headers has no effect.
- X.sp
- XAliases specified on the command line are expanded and put into the
- Xmessage buffer in their expanded form regardless of the value of
- X.B no_expand.
- XHowever, if the user changes the headers using the editor and specifies
- Xaliases, those aliases will not be expanded if
- X.B no_expand
- Xis set.
- XOtherwise, they are expanded as usual.
- X.sp
- XThe headers Bcc: and Fcc: are removed as expected.
- X.sp
- XOne added side effect of
- X.B edit_hdrs
- Xis that you can add an Fcc: header to specify a \*QFile Carbon Copy\*U.
- XThis must be a pathname to a file or program.
- XFor programs, the pathname must be preceded by a pipe character (|).
- XNote that \fIall\fR addresses on the Fcc: line that do not begin with `|'
- Xare interpreted as file names; don't put other kinds of addresses there.
- X.sp
- XWhen using
- X.B edit_hdrs,
- Xcertain tilde escapes don't work.
- XSpecifically, any tilde escape that allows you to add or set headers or to
- Xempty the file are inactive.
- XThese functions are to be done in the editor only.
- X.sp
- XOnce a letter is being edited,
- X.B edit_hdrs
- Xcannot be set or unset; the user must end the letter (either
- Xby sending it or forcefully terminating it) first.
- X.sp
- XHeader editing is required (and happens automatically) when using the
- X\*QCompose\*U tool mode item.
- X.TP
- X.B escape
- X(Character)
- XWhen composing a mail message (not in an editor), and the
- X.B escape
- Xcharacter is the first character on the line, the next character
- Xis examined and a corresponding function associated with that
- X.I "escape command"
- Xis executed.
- XSee
- X.B "tilde escapes"
- Xfor more information.
- X.TP
- X.B fignore
- X(String)
- XThis variable is tested when filename completion is used (see the variable
- X.B complete
- Xfor details).
- XThe value of
- X.B fignore
- Xmay be a list of filename extensions (\*Q.c\*U, \*Q.o\*Q, etc.), a list
- Xof filename patterns containing metacharacters (*?{}[]), or a mixture of
- Xthe two.
- XEach element in the list must be separated from the others by a space.
- XWhen a filename completion occurs, any filenames with the extensions
- Xlisted in
- X.BR fignore ,
- Xor matching the patterns given there, will be omitted from the completion.
- X.sp
- XFor example,
- X.sp
- X.ti +4
- Xset fignore = ".o .s [Mm]ake*"
- X.sp
- Xwill cause any filename ending in \*Q.o\*U or \*Q.s\*U, and any filename
- Xbeginning with \*QMake\*U or \*Qmake\*U, to be excluded from completions.
- X.sp
- XIf all files in the current directory match the extensions or patterns,
- X.B fignore
- Xis disabled and completion will occur.
- XFor this reason, it is usually not a good idea to include \*Q*\*U in the list.
- X.TP
- X.B folder
- X(String)
- XThe folder variable is set to the path of a directory where folders are kept.
- XThis path is used by various commands to expand the `+' metacharacter (see
- Xthe
- X.B folder
- Xcommand for details).
- X\*Q~/Mail\*U is the default expansion of `+'.
- X.TP
- X.B fortune
- X(Boolean/string)
- XIf fortune is set, a random fortune is appended to the end of
- Xall outgoing mail using the
- X.IR UNIX (TM)
- Xcommand
- X.B /usr/games/fortune
- X(may vary from system to system).
- XIf fortune is set to something that starts with
- Xa `\-', then it is interpreted as a flag to fortune (e.g., \*Q\-o\*U).
- XIf
- X.B fortune
- Xstarts with a `/', then the program described by
- Xthe string is executed (thus not doing fortune at all, if you want).
- XBy default,
- X.I "fortune \-s"
- X(short fortunes) is used.
- X.TP
- X.B fortunates
- X(String)
- XWhen fortunes are added to messages, sometimes it is desirable to
- Xmake sure that only a selected group of people get a fortune since
- Xcertain people may not understand the messages at the end of your
- Xmail. Therefore, you can set a list of addresses (either pure addresses
- Xor aliases that are expanded to addresses) to be the only people who
- Xreceive fortunes if one is to be appended. Therefore,
- Xif the To: and Cc: lines contain only address listed in this string
- Xvariable, then a fortune is appended to the message.
- XIf those lists contain names that are not on the fortunates
- Xlist, then no fortune is added.
- XThis cannot be overridden; using the
- Xtilde command \*Q~F\*U does not force a fortune to be added unless the
- Xindividuals on the recipient list are all included in the fortunates
- Xlist. The list is made up of addresses or aliases separated by spaces or
- Xcommas.
- X.I "NOTE: fortune must be set in order for fortunates to work."
- X.TP
- X.B hangup
- X(Boolean)
- XIf this variable is set,
- X.I Mush
- Xwill update your folder before exiting when it receives a SIGHUP signal.
- XThis is useful if you frequently read mail when dialed in over a noisy phone
- Xline that often drops carrier.
- X.sp
- X.IR WARNING \|:
- XCertain errors are ignored during this update, because it is presumed to be
- Ximpossible to query the user for instructions.
- XExcept in the event of a write error, the folder will be forced to contain
- Xexactly those messages that were not deleted at the time of the hangup.
- XIn particular, this means that if an error occurs when loading new mail before
- Xthe update, the new mail will be lost.
- XWrite errors will still cause both the working tempfile and as much of the
- Xfolder as possible to be preserved.
- X.TP
- X.B hdr_format
- X(String)
- XThis variable controls the format of the headers displayed by the
- X.B headers
- Xcommand and in the curses and tool modes.
- XThe format style of this variable string is similar to printf in C.
- XWhen printing the information, the variable is evaluated and each
- Xcharacter in the string is echoed unless a `%' character is
- Xencountered.
- XIf one is found, the following string substitutions are made:
- X.sp
- X.in +2
- X.nf
- X.ta 0.5i
- X%a address of the author
- X%c number of characters (bytes) in the message
- X%f entire \*QFrom:\*U field (author)
- X%l number of lines in the message
- X%i the message-id (may not be present)
- X%n name of the author
- X%s subject of the message
- X%t \*QTo:\*U field (recipients)
- X%d date and time of the message
- X%T time only of the message
- X%N day number of the month of the message
- X%W day of the week (Sun, Mon, etc.)
- X%M month name of the message
- X%Y year of the message
- X%y last two digits of %Y
- X%Z time zone of the message
- X\\n a newline
- X\\t a tab
- X.fi
- X.in -2
- X.sp
- XA field width specifier may be used in all options.
- XThus, \*Q%20f\*U will print the
- Xfirst 20 characters of the from line.
- XNo matter what the formatting string, the message number
- Xfollowed by a `>' (for current message) is printed.
- X.sp
- XThe \*Qaddress\*U and \*Qname\*U of the author
- Xare extracted from the \*QFrom:\*U field of the message.
- XThe name may be given in parentheses and
- Xthe rest of the line is the address, or the address is given in angle
- Xbrackets (`<' and `>') and the rest of the line is the name.
- XSometimes the address is the only thing on the line,
- Xin which case the name and address are the same.
- X.sp
- XA special format is also provided to obtain the contents of any header
- Xnot listed above.
- XIf a format of the form \*Q%?header-name?\*U (both leading and following `?'
- Xcharacters are required) appears in the value of
- X.BR hdr_format ,
- Xthe named header will be looked up.
- XFor example,
- X.sp
- X.ti +4
- Xset hdr_format = "%a %n %?phone?"
- X.sp
- Xcauses the electronic address, name, and (if a \*QPhone:\*U header is present)
- Xphone number of the sender to be displayed.
- X.TP
- X.B history
- X(Numeric)
- XThis variable is set to the number of commands the shell interface
- Xwill remember. It is just like the history variable used in
- X.I csh.
- XIf unset, the last command can always be referenced, but none other.
- X.TP
- X.B hold
- X(Boolean)
- XNormally, on termination of mail, read messages are saved in
- Xyour mbox (except those marked as preserved).
- XSetting
- X.B hold
- Xprevents this from happening,
- Xand messages remain in /usr/spool/mail/user.
- XThis does not apply to folders, obviously.
- X.TP
- X.B home
- X(String)
- XThis variable describes the user's home directory.
- XThe variable is initialized to the value of the environment variable HOME,
- Xbut can be modified at any time during the
- X.I Mush
- Xsession.
- XThe home directory is the same directory where temporary
- Xfiles are kept for editing and so forth.
- XIf the home directory cannot be found or read/write access is denied, an
- Xalternate directory, typically /tmp, is used.
- X.TP
- X.B hostname
- X(String)
- XThis is the name of your computer. Currently, its sole usage is to
- Xcompose a correct \*QFrom:\*U line for use with Mail Transport Agents
- Xthat do not create this header automatically. This will aid the
- Xrecipients of your mail in replying to your messages.
- X.sp
- XNote: the user should not have to set
- Xthis variable since it should be set automatically by the system. However,
- Xit may happen that the system's hostname cannot be queried and the user may
- Xhave to set this variable manually.
- X.TP
- X.B ignore_bang
- X(Boolean)
- XIf set,
- X.I Mush
- Xwill ignore the `!' character as a history reference.
- XNote that this severely limits use of the
- X.B cmd
- Xfacility, which depends upon history references for argument substitutions.
- X.TP
- X.B ignoreeof
- X(Boolean/string)
- XIf set, `^D' will not exit from
- X.IR Mush .
- XIf set to a string, that string is executed as a command
- Xwhen `^D' is typed.
- XThis does not effect termination of messages under the
- X.B mail
- Xand
- X.B reply
- Xcommands.
- X.TP
- X.B indent_str
- X(String)
- XWhen including messages into the text of a letter you are editing,
- Xeach line of the messages is preceded by the value of
- X.BR indent_str .
- XIf it is unset, the message body is indented by the string \*Q> \*U.
- XSee also the variables
- X.B pre_indent_str
- Xand
- X.BR post_indent_str .
- X.TP
- X.B in_reply_to
- X(String)
- XThis variable may be set to a string that will complete the
- Xheader \*QIn-Reply-To:\*U.
- XThe format of this string is identical to the options for the variable
- X.BR hdr_format .
- X.sp
- XFor example, if the user were to respond to a message
- Xfrom Dan Heller that was sent on October 21, 1987, at 10:39pm, with
- X.B in_reply_to
- Xset to the string
- X.nf
- X.in +2
- X.sp
- X%n's message as of %d.
- X.sp
- X.ti -2
- Xthe header line
- X.sp
- XIn-Reply-To: Dan Heller's message as of Oct 21, 1987, 10:39pm.
- X.in-2
- X.fi
- X.sp
- Xwould be added to the message.
- X.TP
- X.B keepsave
- X(Boolean)
- XIf set, the commands
- X.B save
- Xand
- X.B write
- Xwill
- X.I not
- Xmark messages for deletion.
- X.TP
- X.B known_hosts
- X(String)
- XUsed in conjunction with the variable
- X.BR auto_route ,
- Xthis variable is set to a list of hosts, separated by spaces, tabs,
- Xand/or commas, and describes
- Xthe hosts with whom you know your machine shares UUCP connections.
- XWhen replying to mail, many times you will see that the return path
- Xconstructed will have hostnames that your site could call, but instead
- Xthe mail has been routed through a number of different machines first.
- X.sp
- XFor example, if you respond to mail that would mail to the path
- X.sp
- X.ti +2
- Xunicom!pixar!root
- X.sp
- Xbut your know your machine already calls pixar, then sending the mail
- Xto unicom first is unnecessary.
- XIf you have set your known_hosts string to include pixar in its list,
- Xthe resulting address would look like
- X.sp
- X.ti +2
- Xpixar!root
- X.sp
- XAlso see the command
- X.B replyall
- Xfor more information on constructing correct return addresses.
- X.TP
- X.B logfile
- X(String)
- XSet to a filename which logs the headers of outgoing messages. The message
- Xbody of the message is not logged as it is for the
- X.B record
- Xfilename. The logfile can be read as a folder to scan for the fact that
- Xmessages have been sent. If \fBlogfile\fR and \fBrecord\fR are both set,
- Xthen the logfile and the record files will match exactly. In this case,
- Xthe record file can be quickly scanned by scanning the log file instead.
- X.sp
- XIf set, but not to a string, the log file defaults to ~/mail.log.
- X.TP
- X.B mail_icon
- X(String)
- XSet to a pathname for an alternate icon pixmap to use when the
- X.I Mush
- Xtool is closed.
- XThe number of messages in the mailbox is displayed as an icon label unless
- Xthe string
- X.I iconlabel
- Xappears as one of the values of the variable
- X.BR quiet .
- XSee also the variable
- X.B newmail_icon
- Xfor the icon displayed when new mail arrives or is present.
- X.TP
- X.B mbox
- X(String)
- XSet to the pathname of a file you'd like
- X.I Mush
- Xto use as the default folder for read mail.
- XThe default is ~/mbox.
- X.TP
- X.B metoo
- X(Boolean)
- XWhen replying to mail, you are normally deleted from the list of
- Xrecipients.
- XIf metoo is set, you remain on the list.
- XSee the
- X.B alternates
- Xcommand
- Xfor information on determining whether or not you're even on the list.
- X.TP
- X.B mil_time
- X(Boolean)
- XWhenever the time is displayed in a message header or in the prompt,
- Xit can be displayed in either 12-hour am/pm format, or in 24 hour
- Xmilitary time format.
- XThe default is the 12 hour format, but can be
- Xreset to use the 24 hour format by setting this variable.
- X.TP
- X.B newline
- X(Boolean/string)
- XIf set, carriage returns are ignored.
- XIf set to a string, that string is executed as a command when a
- Xcarriage return is typed.
- XOtherwise, carriage return prints the next undeleted message.
- X.B newmail_icon
- X(String)
- XSet to a pathname for an alternate icon pixmap to use
- Xwhen new mail is available.
- X.TP
- X.B no_expand
- X(Boolean)
- XWhen a
- X.I Mush
- Xalias is used to reference a list of addresses, the list is expanded on
- Xthe To: and Cc: lines to indicate the complete list of all the recipients of
- Xthe message.
- XWhen no_expand is set, aliases are not expanded and the headers
- Xreflect the same information as typed by the user.
- X.TP
- X.B no_hdrs
- X(Boolean)
- XIf set, this variable tells
- X.I Mush
- Xnot to include your personalized mail headers in messages.
- XThis does not unset your headers, it just disables them.
- X.TP
- X.B no_reverse
- X(Boolean)
- XIn curses mode and in the tool mode, reverse video is not used to indicate the
- X.I "current message"
- Xif this variable is set.
- XIn the tool mode, if reverse video is not in use,
- Xtext is displayed in \*Qbold\*U.
- X.TP
- X.B nonobang
- X(Boolean)
- XIf this variable is set, history references that don't match anything will
- Xbe left unexpanded, rather than generating error messages.
- XThis is useful if you want argument referencing in
- X.B cmd
- Xexpansions, but do
- Xnot want to remember to escape every `!' you type in UUCP addresses.
- XIt is also recommended for use with curses mode, because history is not
- Xkept for line mode escapes from that interface.
- X.TP
- X.B nosave
- X(Boolean)
- XWhen composing a letter, the user can terminate the letter without sending
- Xit by using the tilde escape \*Q~q\*U or by sending two \*Qinterrupt\*U
- Xsignals.
- XWhen the message is terminated, a copy of it is saved to the
- Xfile \*Qdead.letter\*U in the user's home directory or to the file described
- Xby the variable
- X.BR dead .
- XIf the variable
- X.B nosave
- Xis set, then a backup copy of the message will not be saved.
- X.TP
- X.B output
- X(Read-only string)
- XThis variable holds a message list representing the output of the last
- Xsuccessful command.
- XThis is useful for recovering from broken pipes or to capture the output
- Xof a command without affecting the information it displays (some commands
- Xlimit or suppress output when used in a pipeline).
- XCommands which return an error status (see the variable
- X.BR status )
- Xdo not affect the value of
- X.BR output ,
- Xbut successful commands that return no message list will clear it.
- XAlso, many curses mode commands return an error status to indicate that
- Xthe display has been altered, even if no actual error occurred.
- XThis variable is thus most useful in line mode and in scripts.
- X.TP
- X.B pager
- X(String)
- XIf a message is longer than the number of lines that the variable
- X.B crt
- Xis set to, then this program is executed to view a message.
- XIf the user does not have this variable set, the user's environment PAGER
- Xis checked.
- XIf this isn't set, then the default value for pager (set up
- Xby the system manager) is used.
- XThis may or may not be the internal pager.
- XTo use the internal pager, you may set the variable pager to
- X.I internal
- Xor to a null string.
- X.TP
- X.B pre_indent_str
- X(String)
- XIf this variable is set, when including the body of a message into an outgoing
- Xmail message (using the \-i option to
- X.I reply
- Xor
- X.IR mail ,
- Xor when using the \*Q~i\*U escape),
- Xa line preceding the first line of
- Xincluded text is printed using the string value of the variable.
- XThis string uses the same printf style formatting characters as the
- X.B hdr_format
- Xvariable.
- XFor example, you could set
- X.B pre_indent_str
- Xas follows:
- X.sp
- X.ti +2
- Xset pre_indent_str = '[In the message entitled "%s", on %7d\\n %n writes:]'
- X.sp
- XYou can then include a message body using \*Q~i\*U, and you might
- Xget something like this:
- X.sp
- X.in +2
- X.nf
- X[In the message entitled "This is a test.", on Jan 19,
- X Dan Heller writes:]
- X> This is a test message to show how
- X> pre_indent_str might be used.
- X.ti -2
- X.sp
- X.fi
- XThis example assumes that the string value of
- X.B indent_str
- Xis not set.
- X.TP
- X.B post_indent_str
- X(String)
- XThis variable has the same function as
- X.B pre_indent_str
- Xexcept that the string is inserted into the message body
- X.I after
- Xthe text of the included message rather than before.
- XThe purpose of this variable is to complement the string described by
- Xthe variables
- X.B pre_indent_str
- Xand
- X.BR indent_str .
- XFor example,
- X.sp
- X.in +2
- X.nf
- Xset pre_indent_str = "/*"
- Xset indent_str = " * "
- Xset post_indent_str = " */"
- X.sp
- X.ti -2
- XAn included message might look something like this:
- X.sp
- X/*
- X * This is a test message to show how
- X * post_indent_str and pre_indent_str
- X * can work together with indent_str.
- X */
- X.fi
- X.in -2
- X.TP
- X.B printer
- X(String)
- XUsed to set the default printer for the lpr command.
- X.TP
- X.B print_cmd
- X(String)
- XThis string should describe a
- X.IR UNIX (TM)
- Xcommand other than "lpr" for sending
- Xmessages to the line printer.
- XSome people may choose to use a device independent
- Xtroff style program, but virtually any UNIX command will suffice.
- XCommon usage might include:
- X.sp
- X.ti +2
- Xset print_cmd = 'ptroff \-ms \-Plp'
- X.ti +2
- Xlpr .\-$
- X.sp
- XThis command would send all messages from the current message to the last
- Xmessage through the ptroff command, supplying the appropriate arguments.
- X.TP
- X.B prompt
- X(String)
- XYou can set your prompt to tell you many different pieces of information.
- XBy default, the prompt is set to the string
- X.sp
- X.ti +2
- X\*QMsg %m of %t: \*U
- X.sp
- XIf you have 10 messages and your current message is 5, then your prompt
- Xwould look like:
- X.sp
- X.ti +2
- XMsg 5 of 10:
- X.sp
- XThe string value that prompt is set to will be printed as your prompt.
- XIf the string contains a `%', then that character is
- Xignored, the next character is evaluated and an appropriate
- Xvalue is printed in its place:
- X.sp
- X.nf
- X.in +2
- X.ta 0.5i
- X%F full path name of the current folder
- X%f name of the current folder (tail of %F)
- X%m \*Qcurrent message\*U number
- X%t total number of messages
- X%n number of \*Qnew\*U messages
- X%u number of unread messages
- X%d number of deleted messages
- X%T current time (hours and seconds)
- X%N today's date (Number of the day in the month)
- X%W weekday name (Sun, Mon, Tue, ...)
- X%M current month
- X%Y this year
- X%y last two digits of %Y
- X\\n a newline
- X\\t a tab
- X.fi
- X.in -2
- X.TP
- X.B quiet
- X(Boolean/Multivalued)
- XThis variable tells
- X.I Mush
- Xto be quiet in various circumstances.
- XIf set, but not to any values, the currently running version of
- X.I Mush
- Xis not printed on startup.
- XOtherwise,
- X.B quiet
- Xmay be set to one or more words separated by spaces or commas.
- XCurrently recognized words are:
- X.sp
- X.nf
- X.ta 1.5i
- X.in +4
- X.\" \& escapes are to make obvious the tab after each word
- Xautosign Suppress messages when appending signature.
- Xawait\&\& Suppress \fBawait\fR's bell for new mail.
- Xcomplete Suppress word completion error bells.
- Xfkey\&\& Suppress warnings about unset function keys.
- Xfortune\& Suppress messages when appending fortune.
- Xiconlabel Suppress showing message count as icon label.
- Xnewmail\& Suppress new mail notification messages.
- Xpick\&\& Suppress descriptions of pick searches.
- Xstartup\& Suppress the startup message.
- Xtool\&\& Suppress tool mode bell for new mail.
- X.in -4
- X.fi
- X.sp
- XError conditions for signatures and fortunes are still reported.
- XSee the variables
- X.BR autosign ,
- X.BR complete ,
- Xand
- X.B fortune
- Xfor more details.
- XThe
- X.I newmail
- Xsetting does not prevent automatic inclusion of new mail, it only
- Xsuppresses the announcement of its arrival, including tool mode bells.
- XThe
- X.I fkey
- Xsetting applies only to tool mode.
- X.TP
- X.B realname
- X(String)
- XSet to the name of the user.
- XThe name is initialized to the value of the environment variable
- X.B NAME
- Xupon invocation of the program.
- XIf that isn't set, then the name is gotten from the password file if
- Xavailable.
- XIf this variable wants to be reset or changed after the
- Xprogram has started, the user should issue the command:
- X.sp
- X.ti +2
- Xset realname = "Your name here"
- X.TP
- X.B record
- X(String)
- XSet to the name of a file to record all outgoing mail.
- XThis should be a full pathname or the current directory is searched.
- XThe pathname may begin with `+' (indicating the user's ~/Mail directory
- Xor the value of the
- X.B folder
- Xvariable) or with a `~' (or \*Q~user\*U)
- Xindicating the user's home directory.
- X.TP
- X.B reply_to_hdr
- X(String)
- XWhen replying to mail,
- X.I Mush
- Xsearches for return paths from the message by searching for
- Xthe message headings \*QReply-to\*U, \*QReturn-path\*U, and \*QFrom:\*U,
- Xin that order.
- XIf none are found, then the first line of the
- Xmessage created by the delivery system is parsed and the address
- Xgiven there is used. This special message header is created by most
- Xmail delivery programs, but not all of them (MMDF, for one). This line
- Xis called the
- X.B From_
- Xheader because it is a colon-less header, but contains the return address
- Xof the author of the message.
- XIf the variable
- X.B reply_to_hdr
- Xis set to a list of headers (delimited by spaces or commas), then that list
- Xis searched. If none of the headers listed in the variable exist
- Xin the message, then a warning message is printed and the default
- Xheaders are used. The special case From_ header can be specified
- Xas one of the headers to search for.
- X.sp
- X.nf
- X.ti +2
- Xset reply_to_hdr = "sender reply-to return-path from_"
- X.fi
- X.sp
- XThis example shows that
- X.I Mush
- Xwill search for (in order), the headers listed in the reply_to_hdr variable.
- XIf one header isn't found, then
- X.I Mush
- Xlooks for the next in the list.
- XIf none of the headers in the list are found, the default headers (mentioned
- Xabove) are searched.
- XThe last header listed in the example is the special \*QFrom \*U header.
- XAlso see the
- X.B reply
- Xcommand.
- X.TP
- X.B save_empty
- X(Boolean)
- XNormally, when all messages in a folder are deleted and the user updates
- Xthe folder or changes to a new folder, the empty folder is deleted.
- X.B save_empty
- Xprevents the folder from being deleted and it is left zero length.
- XNote: the main system mailbox is never deleted, even when empty.
- X.TP
- X.B screen
- X(Numeric)
- XMay be set to the number of message headers to display at a time in the
- Xline and curses modes.
- X.TP
- X.B screen_win
- X(Numeric)
- XMay be set to the number of message headers to display in the tool mode.
- XA subwindow is created for message headers, and its size is large
- Xenough to hold $screen_win headers.
- X.TP
- X.B sendmail
- X(String)
- XIf set, the program and arguments described by this variable will
- Xbe executed to actually deliver mail sent by
- X.I Mush.
- X.TP
- X.B show_deleted
- X(Boolean)
- XIf true, deleted message headers are displayed along with
- Xother messages (`*' indicates a deleted message) for the \fBheaders\fR
- Xcommand. Also, deleted messages can be displayed using any command which
- Xdisplays a message.
- XIn curses mode, this variable is ignored and deleted messages are always
- Xdisplayed with other messages to facilitate undeleting messages.
- X.TP
- X.B show_hdrs
- X(Multivalued)
- XSet to a list (space and/or comma separated) of headers that are to be the
- Xonly headers displayed when viewing a message.
- XThis variable disables the headers suppressed by the
- X.B ignore
- Xcommand.
- XFor example,
- X.sp
- X.ti +2
- Xset show_hdrs = \*Qfrom date subject to cc\*U
- X.sp
- Xwill only display the headers
- X.B From: Date: Subject: To: Cc:
- Xin their entirety.
- X.TP
- X.B sort
- X(Boolean/string)
- XThe value of this variable is the same as the arguments to the
- X.B sort
- Xcommand.
- XThis variable is used for the initialization file to presort
- Xmail in the system mailbox upon entering
- X.IR Mush .
- XSee the COMMANDS section for more information.
- X.TP
- X.B squeeze
- X(Boolean)
- XWhenever messages are read, piped, or saved, if this variable is set,
- Xall consecutive blank lines are squeezed into one blank line.
- X.TP
- X.B status
- X(Read-only numeric)
- XThis variable records the success or failure status of the most recently
- Xexecuted command.
- XAll line-mode commands return 0 (zero) for success and a negative value for
- Xerror.
- XSome curses mode commands return an error status to indicate that the
- Xdisplay has been corrupted, even when no actual error has occurred.
- XThis variable is most useful in scripts to test the success of an operation
- Xbefore proceeding.
- X.TP
- X.B tmpdir
- X(String)
- XThis variable describes the path to use as the directory
- Xfor all tempfiles that
- X.I Mush
- Xuses. By default, the user's home directory is used. If that
- Xcannot be accessed, a directory writable by all is used (typically, /tmp).
- XIf \fBtmpdir\fR is set, then it is used first.
- X.TP
- X.B thisfolder
- X(Read-only string)
- XThe full path name of the current mailbox.
- XThis variable cannot be modified or displayed by the
- X.B set
- Xcommand; its value changes whenever a new folder is entered with the
- X.B folder
- Xcommand.
- XDuring sourcing of the initialization files,
- X.B thisfolder
- Xis not set, because the current folder has not yet been read.
- XIf you refer to \*Q$thisfolder\*U in an initialization file
- X.RI ( e.g. ,
- X.IR .mushrc ),
- Xbe sure to do so inside an \*Qif $?thisfolder\*U test.
- X.TP
- X.B toplines
- X(Numeric)
- XThe number of lines of a message to print when the
- X.B top
- Xcommand is issued. If unset, $crt lines are printed.
- XNote that the message body only is printed when using the
- X.B top
- Xcommand; message headers are not counted as lines since they are not displayed.
- X.TP
- X.B unix
- X(Boolean)
- XIf set, commands that are not
- X.I Mush
- Xcommands are considered to be
- X.IR UNIX (TM)
- Xcommands.
- XThis removes the inconvenience of requiring the user to do
- Xshell escapes to do quick
- X.I UNIX
- Xcommands.
- XFor systems that support job control, SIGTSTP will stop the entire shell as
- Xwell as the process being executed.
- XWhen SIGCONT is delivered, both will receive the
- Xsignal and the shell will continue to wait for the job to finish.
- X.sp
- XDue to the lack of real job control, input/output redirection and UNIX command
- Xpiping, this mode of the shell is not intended to be used as a login shell.
- X.sp
- XIf a
- X.I Mush
- Xcommand conflicts with a
- X.I UNIX
- Xcommand, use the command
- X.B sh
- Xto force execution as a shell command or use the full pathname of the command
- X(e.g. starting with a '/').
- X.sp
- X.BR Warning :
- X.I "Be aware that Mush pipes transmit message lists, NOT TEXT."
- XYou cannot pipe the output of
- X.I UNIX
- Xcommands to or from
- X.I Mush
- Xcommands or other
- X.I UNIX
- Xcommands with the
- X.I Mush
- Xpipe mechanism. You can, however, pipe
- X.I Mush
- Xcommands to a final UNIX
- Xcommand (see the \fBpipe\fR command for more information).
- XUNIX commands should be simple commands without pipes or metacharacters.
- X.sp
- XThis feature is not available for the tool mode.
- X.TP
- X.B verbose
- X(Boolean)
- XPasses verbose flag to mail delivery systems when sending mail, and
- Xcauses
- X.I Mush
- Xto print additional information about the sending process.
- X.TP
- X.B verify
- X(Boolean)
- XWhen through editing messages, just before sending,
- X.B verify
- Xwill ask you if you want to send, continue editing, or abort the
- Xwhole message altogether.
- X.TP
- X.B version
- X(Read-only String)
- XThe value of this variable is the version string, printed by
- X.I Mush
- Xat startup (unless
- X.B quiet
- Xis set) and included in the \*QX-Mailer:\*U header in messages.
- X.TP
- X.B visual
- X(String)
- XMay be set to the visual editor to use when ~v is specified.
- XDefault is vi or the environment string VISUAL.
- XThe visual editor is invoked by the \-e arguments to the
- Xcommands,
- END_OF_FILE
- if test 50362 -ne `wc -c <'mush/mush.1.c'`; then
- echo shar: \"'mush/mush.1.c'\" unpacked with wrong size!
- fi
- # end of 'mush/mush.1.c'
- fi
- if test -f 'mush/strings.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mush/strings.h'\"
- else
- echo shar: Extracting \"'mush/strings.h'\" \(1332 characters\)
- sed "s/^X//" >'mush/strings.h' <<'END_OF_FILE'
- X/* @(#)strings.h (c) copyright 9/3/86 (Dan Heller) */
- X
- X/*
- X * If you *know* your sprintf() returns char*, you can remove the follow
- X * define. Careful, "new" 4.3BSD's sprintf returns int. See README
- X */
- X#define sprintf Sprintf
- X#ifdef SYSV
- X#define index strchr
- X#define rindex strrchr
- X#endif /* SYSV */
- X
- X/* External function definitions for routines described in string(3). */
- Xextern char
- X *strcat(), *strncat(), *strcpy(), *strncpy(),
- X *index(), *rindex(), *getenv();
- Xextern int
- X strcmp(), strncmp(), strlen();
- X
- Xextern char
- X *Sprintf(), /* See comments above function in strings.c */
- X *argv_to_string(), /* convert a vector of strings into one string */
- X *any(), /* return first char in str2 that exists in str1 */
- X *ctrl_strcpy(), /* string copy converting control chars to ascii */
- X *itoa(), /* return a string representation of a number */
- X *lcase_strcpy(), /* just like strcpy, but convert all chars to lower */
- X *m_xlate(), /* translate string from ascii to ctrl-char format */
- X *my_atoi(), /* do an atoi, but return the last char parsed */
- X *no_newln(), /* remove newline and extra whitespace - return end */
- X *savestr(); /* strcpy arg into malloc-ed memory; return address */
- X
- Xextern void
- X print_argv(), /* prints an argv as one string */
- X putstring(); /* put a string */
- END_OF_FILE
- if test 1332 -ne `wc -c <'mush/strings.h'`; then
- echo shar: \"'mush/strings.h'\" unpacked with wrong size!
- fi
- # end of 'mush/strings.h'
- fi
- echo shar: End of archive 1 \(of 19\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 19 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
-